package com.chaoxinet.csmall.passport.security;

import lombok.Data;
import lombok.Getter;
import lombok.ToString;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.User;

import java.util.Collection;

/**
 * @Name: AdminDetails
 * @Author: 西风残叶
 * @Company: 朝兮网络工作室
 * @Date: 2024/2/7 16:07
 * @TODO: UserDetails的扩展类
 */
// 会调用父类的toString方法
@ToString(callSuper = true)
public class AdminDetails extends User {
    @Getter
    private Long id;
    /**
     * 使用指定的用户名、密码、启用状态和权限构造一个新的AdminDetails对象。
     *
     * @param username    管理员用户的用户名
     * @param password    管理员用户的密码
     * @param enabled     管理员用户的启用状态
     * @param authorities 管理员用户的权限
     */
    public AdminDetails(Long id, String username, String password, boolean enabled, Collection<? extends GrantedAuthority> authorities) {
        super(username, password, enabled, true, true, true, authorities);
        this.id = id;
    }
}